//https://leetcode.cn/problems/lemonade-change/
package codeRandomThoughts.Test860柠檬水找零;

public class Solution {
    public boolean lemonadeChange(int[] bills) {
        int[] money = new int[3];//记录目前手里每种钱有几张

        for (int bill : bills) {
            //如果用户付5美元
            if (bill == 5) {
                money[0]++;
            } else if (bill == 10) {
                //如果用户付10美元
                money[1]++;
                //需要给用户找5美元
                money[0]--;
            } else if (bill == 20) {
                //如果用户付20美元
                money[2]++;
                //需要给用户找15美元
                //此时有两种情况,有10美元的情况下优先用10美元
                //一张10美元 一张5美元
                if (money[1] > 0) {
                    money[1]--;
                    money[0]--;
                } else {
                    //3张5美元
                    money[0] -= 3;
                }
            }
            if (money[0] < 0 || money[1] < 0) {
                return false;
            }
        }
        return true;
    }
}
